package pe.edu.upc.dsd.debuggers.pedido.controller;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import pe.edu.upc.dsd.debuggers.pedido.model.service.ClienteService;
import pe.edu.upc.dsd.debuggers.pedido.model.service.ClienteServiceImpl;
import pe.edu.upc.dsd.debuggers.pedido.model.service.DocumentoService;
import pe.edu.upc.dsd.debuggers.pedido.model.service.DocumentoServiceImpl;
import pe.edu.upc.dsd.debuggers.pedido.model.vo.Documento;
import pe.edu.upc.dsd.debuggers.pedido.model.vo.Cliente;


public class ClienteController extends HttpServlet{
	
	 /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	
	  public ClienteController() {
	        super();
	        // TODO Auto-generated constructor stub
	    }

		/**
		 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
		 */
		protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			// TODO Auto-generated method stub
		}

		/**
		 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
		 */
		protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			String codCliente = request.getParameter("txtCodCliente");
			String chkEstado = request.getParameter("chkEstado");
			
			
			String fecIniDia = request.getParameter("element_5_1");
			String fecIniMes = request.getParameter("element_5_2");
			String fecIniAnio = request.getParameter("element_5_3");
			
			String fecFinDia = request.getParameter("element_9_1");
			String fecFinMes = request.getParameter("element_9_2");
			String fecFinAnio = request.getParameter("element_9_3");
			
			
			// obtiene estado deacuerdo a marcacion de check
			String docEstado = chkEstado == null ? "1" : "0";
			System.out.println("Estado: " + docEstado); 
			System.out.println(chkEstado);

			if(codCliente!= null && codCliente.trim()!= "" && fecIniDia!= null && fecIniDia.trim()!= "" && fecIniMes!= null && fecIniMes.trim()!= "" &&
				fecIniAnio!= null && fecIniAnio.trim()!= "" && fecFinDia!= null && fecFinDia.trim()!= "" &&
				fecFinMes!= null && fecFinMes.trim()!= "" &&fecFinAnio!= null && fecFinAnio.trim()!= ""){
				// obtiene el cliente
				ClienteService clienteService = new ClienteServiceImpl();
				Cliente cliente = clienteService.getObtenerClientePorId(codCliente);
				String fecIni = fecIniMes + "/" + (fecIniDia.length()== 1 ? "0" + fecIniDia : fecIniDia) + "/" + fecIniAnio.substring(2,4);
				String fecFin = fecFinMes + "/" + (fecFinDia.length()== 1 ? "0" + fecFinDia : fecFinDia) + "/" + fecFinAnio.substring(2,4);
				System.out.println("Fecha1: " + fecIni);
				System.out.println("Fecha2: " + fecFin); 
				// obtiene lista de documentos
				DocumentoService documentoService= new DocumentoServiceImpl();
				
				List<Documento> listaDoc = documentoService.buscarDocumentosPorCliente(codCliente, docEstado,fecIni,fecFin);
				// devuelve objetos cliente y listaDocumentos
				request.setAttribute("cliente", cliente);
				request.setAttribute("listaDocumentos", listaDoc);	
			}
			// muestra la pagina
			request.getRequestDispatcher("site/EstadoCuenta.jsp").forward(request, response);
		}
	
}
